The present invention relates generally to computing systems, and more particularly to a method and apparatus for providing collaboration between applications operating in an information system.
Corporations have spent billions of dollars a year to implement custom, standalone information systems that address specific business domain functionality requirements such as accounting, payroll, manufacturing, and distribution. By creating these separate, standalone systems, each individual section of the business process became isolated from the others.
Over time, Corporate Information Technology (CIT) departments began shifting away from in-house development of these custom systems and have attempted to minimize costs by purchasing enterprise applications on the outside. Enterprise applications are more generic, providing general business functionality in a pre-packaged product. Typically, enterprise applications include heterogeneous combinations of application systems, hardware platforms, operating systems, third- and fourth-generation languages, databases, network protocols, and management tools. While these applications bring tremendous benefits to the companies that implement them, on an enterprise level, they only exacerbate the proliferation of xe2x80x9cprocess islandsxe2x80x9d because they are not readily integratable.
Stand-alone enterprise applications provide powerful tools for handling many business processes. However, some functionality is often duplicated in separate applications, driving up the cost when bundling enterprise applications. Custom functional integration between enterprise applications, while desirable, is generally cost prohibitive, and defeats the benefits of the make-versus-buy decision to purchase the enterprise application in the first place. Tool and middleware vendors offer solutions for data integration, but not function integration, and even those solutions require significant custom coding to implement.
In general, in one aspect, the invention provides a modular application collaborator for providing inter-operability between applications including a plurality of connectors for communicating with a like plurality of applications and an interchange server. The interchange server includes an application collaboration module and service module. The service module transfers messages between connectors and the application collaboration module. The application collaboration defines the inter-operability between two or more applications. The interchange server service module includes a transaction service and an error service. Transactions are executed in the application collaboration module and the transaction service records each action and a compensating action for undoing an associated action. An error service monitors for errors in the interchange server, and, upon detection of an error, stops the execution of a transaction and initiates the execution of any required compensating actions to undo the interrupted transaction. The compensating transactions may be executed at the connectors and are not required to be overseen by the interchange server.
Each connector includes an application interface, a business module and interchange server interface. The application interface includes an API manipulator for receiving and transferring data and methods between a connector and its associated application. The business module includes business methods and transforms for manipulating data for transfer between an associated application and an application collaboration module. The business module may include a filter mechanism for filtering events received from an application to match requests received from a collaboration. The interchange server interface allows for data transfer between a connector and an application collaboration module. The interchange server interface may include a proxy service for overseeing the execution of compensating events at the connector level.
One advantage of the invention is that it allows businesses to significantly improve efficiency and productivity by integrating related functionality.
Other advantages include efficient resource management at the collaboration level by proxy execution of compensating transactions and filtering at the source. The transaction system is not required to be burdened with overseeing the execution of compensating transactions when a fault is detected. Rollback may be initiated and execution of compensating transactions may be delegate to the connector level. In this way, each connector acts as a proxy for the transaction server for its own respective application. The transaction system may maintain overall responsibility for the rollback operation to allow for sequencing of transactions between differing applications, or may relinquish control to the individual proxies. Filtering of unwanted events at the source connector level frees up collaboration and system resources resulting in only the transfer of requested events between a given connector and a collaboration.
Other advantages and features will be apparent from the following description and claims.